<?php

// Acceso restringido
defined('JL') or die('Acceso restringido');

/**
 * Clase Vista, encargada de gestionar la vista para el usuario
 */
class JLView {

    private $config = null;
    public $displayData = "";
    private $nameView = "";
    private $defaultTemplate = "";
    private $pathBase = "";
    private $pathTemplate = "";
    private $pathResouces = "";
    // Config Page
    private $pageTitle = "";
    private $pageLanguaje = "";
    private $pageCharset = "";
    private $vars = null;

    // Contructor que inicializa clase Config para el uso de variables en la plantilla HTML
    function __construct() {
        $config = Config::getInstance();
        $this->config = $config;
        $this->defaultTemplate = $this->config->get("tmpDefaultTemplate");
    }

    /**
     * funcion que desplega la vista al usuario
     * @Params 
     * $nameview[String] Nombre de la Vista. \n
     * $vars[Array] varibles que se utilizaran en la plantilla HTML
     * @Return bool
     */
    public function Show($nameview, $title, $vars = array()) {
        $this->nameView = $nameview;

        // Se crea la ruta a la Plantilla BASE HTML 			
        $path = JLPATH_TEMPLATES . DS . $this->defaultTemplate . DS . 'Index.html.php';

        $this->pageTitle = $title;
        $this->LoadConfigValuesPage();

        //Si no existe el fichero en cuestion, lanzamos un 404
        if (file_exists($path) == false) {
            echo '<center>La Plantilla HTML No Existe en: <b>"' . $path . '"</b></center>';
            return false;
        }

        $this->vars = $vars;
        // Si hay variables para asignar, las pasamos una a una.
        if (is_array($this->vars)) {
            foreach ($this->vars as $key => $value) {
                $$key = $value;
            }
        }

        //Se incluye la plantilla HTML.
        include ( $path );
    }

    function LoadConfigValuesPage() {
        $jltools = new JLTools();
        $pathBASE = $jltools->pathBase($this->config->get("pathBase"));

        $this->pathBase = $pathBASE;
        $this->pathTemplate = $pathBASE . "/Templates/" . $this->defaultTemplate;
        $this->pathResouces = $pathBASE . "/Resouces";

        //$this->pageTitle 		= $this->config->get("tmpPageTitle");
        $this->pageLanguaje = $this->config->get("tmpLanguaje");
        $this->pageCharset = $this->config->get("tmpCharset");
    }

    function bodyPage() {
        $path = JLPATH_VIEWS . DS . $this->nameView . DS . 'Body.html.php';

        // Si hay variables para asignar, las pasamos una a una.
        if (is_array($this->vars)) {
            foreach ($this->vars as $key => $value) {
                $$key = $value;
            }
        }

        include_once ( $path );
    }

    function headPage() {
        $path = JLPATH_VIEWS . DS . $this->nameView . DS . 'Head.html.php';
        include_once ( $path );
    }

}